This specification relates to live media playback adaptive buffer control.
Media players can be operated on client computers to playback live media in buffered and un-buffered mode. Un-buffered mode can be used in real-time collaboration applications, when it is desired to keep end-to end delay to a minimum. Live buffered mode can be used in non-time-critical live streaming applications, such as broadcast, webcast, surveillance, etc. In live buffered mode, media can be delivered to a client computer system from a media streaming server system through communication channels based on Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), and the like.
Possible causes of buffer accumulation can be network congestion or server overload, i.e., the media delivered by the media streaming server system may not be received for a few seconds by a media player running on the client computer system. The delivered media, however, is not lost; it is delivered as a burst as soon as the computational resources become available. Further, clock drift between an encoder (at the media streaming server system) and a decoder (at the client computer system) can result in different media production and consumption rates. Although the clock drift can be quite small, it can accumulate over time. Therefore, the media player is configured to maintain a few seconds of media buffer to compensate for media delivery and clock drift issues.